In modern data communications devices, including modems, there are often specified timing requirements with respect to bit and character times encountered at various points in the data transmission path. In conventional arrangements for communicating by modem, an asynchronous serial port on data terminal equipment provides a connection to a matching port on data communications equipment, such as a modem. In such devices, bit timing information is conventionally carried in the data itself, i.e., there is no separate clock signal provided from the data terminal equipment to the data communications equipment in order to synchronize one to the other. In some data communications protocols, the data rate over the DCE to DCE link, typically between two modems over a telephone line, is effectively slaved to the data rate of the serial port at the sending station.
Certain communications protocols require very precise bit and data rates between modems. This is normally specified as a bit time or a bit rate plus or minus specified tolerances. In recognition of the reality of the installed base of data terminal equipment and the practical requirements for other protocols, such protocols will specify that the data communications equipment must be able to handle incoming data at the specified bit time or data rate, plus or minus a second set of tolerances, which are less stringent than the first set. An example is CCITT Recommendation V.32. As is known to those skilled in the art, Recommendation V.32 specifies a full duplex 9600 bit per second communications protocol which can be implemented over voice grade telephone lines. A quick check of elementary information and noise theory will quickly lead to the conclusion that same cannot be done within the bandwidth of typical telephone lines. However, as is known to those skilled in the art, V.32 modems employ elaborate echo cancelling systems which allow each modem to subtract from the signal present on the phone line its own contribution, and thus to detect the transmitted signal from the other end. This is the data communications equivalent of two people standing face to face and shouting as loudly as they can, while trying to make some arrangement for tuning out what they are saying in order to hear the other person.
Be that as it may, it is well known to those skilled in the art that bit timing is critical on a V.32 link. The Recommendation employs a dense 16 point constellation and encodes four bits per baud time. The use of trellis coding asists in error correction. However, any appreciable phase jitter in the link will cause the communication scheme to break down.
Therefore, CCITT Recommendation V.32 specifies that the transmission speed shall be 9600 bits per second plus or minus 0.01 percent. Again, in recognition of the reality of conventional asynchronous communications adaptors and other serial devices, the protocol specifies that the modem must be able to handle incoming data from the data terminal equipment at 9600 bits per second with tolerances up to minus 2.5 percent and plus 1.0 percent.
This, naturally, leads to a requirement that something be done to compensate for any differences between the input bit rate and the modem to modem V.32 link bit rate. The conventional, well accepted approach to same is deletion of stop bits in response to an overspeed condition, i.e., one in which the incoming data rate is faster than the modem to modem data rate. Conversely, extra stop bits are inserted in response to an underspeed condition. Various schemes have been known in the prior art for accomplishing this and the function is therefore not, per se, novel.
The inventor of the present invention is unaware of the details of implementation of this function on a number of prior art devices. However, tests on prior art modems, and modems manufactured by competitors of the inventors assignee have indicated a certain lack of stability with respect to implementation of this function. In particular, several prior art V.32 modems will dependably operate to insert and delete stop bits in response to relatively constant underspeed and overspeed conditions. However, the inventor of the present invention has discovered an instability and breakdown in the prior art schemes when there is a significant jitter in the bit timing on the incoming data signal, centered around the nominal value of 9600 bits per second.
In other words, if the serial port is performing rather poorly, in that it maintains a relatively constant underspeed or overspeed condition, the prior art speed correction circuits will dependably handle these circumstances. However, if the serial port is operating very close to the nominal speed of 9600 bits per second, but there are intermittent changes to bit times corresponding to a rate slightly higher than 9600 bits per second, and subsequent ones corresponding to data rates slightly lower than 9600 bits per second, the circuits will fail to operate properly and communication link will be lost. This leads to the need to terminate communications and normally causes the modems to go through a rather lengthy retraining sequence with respect to the echo cancellers.
U.S. Pat. No. 4,210,770 to Bowerman et al. entitled Pseudo-Transparent Stop Bit Generator addresses a somewhat analogous problem and generates variable length stop bits using asynchronous devices such as one shots and the like. However, in V.32 modems, it is important that entire, properly timed, stop bits be inserted or deleted in order to correct for underspeed or overspeed conditions. Therefore, there is a need in the art for a highly stable speed correction circuit, particularly one which is useful in a modem implementing CCITT Recommendation V.32, which will dependably compensate for overspeed or underspeed conditions from the data terminal equipment in the presence of significant timing jitter in the data input signal, even when such jitter causes the bit times to err in opposite senses with respect to the nominal bit time.